package com.nenude.corejava.ch9;

public class PackageClass {

	public static void main(String[] args) {
		// java为8种数据类型提供了一个包装类
		//包装类的组要用途是完成基本数据类型和字符串间的互相转换，或基本数据类型间转换，提供了一些重要的属性
		
		//1、布尔值与布尔类型的转换
		boolean bool=true;
		String string=""+bool;//把boolean值转换成字符串
		Boolean boolean1=new Boolean(bool);
		
	  string=boolean1.toString();//包装类转字符串
	  boolean bool2=boolean1.booleanValue();
	  
	  //把字符串转成booleam
	  bool2=Boolean.getBoolean("false");

	  //把包装类对象转换成原始数据类型的过程，称为拆箱；
	  Boolean bool3=Boolean.valueOf("true");//包装对象
	  boolean bool4=Boolean.valueOf("true");
	  //把包装类Boolean 类型的对象直接付给原始数据类型(boolean类型)的过程---自动拆箱
	  bool4=bool3;
	  
	  //把原始数据类型转换成包装对象的过程---装箱
	  //把原始数据类型直接赋值给包装类对象的过程--自动装箱
	  Boolean boolean2=bool4;  
	  boolean2=new Boolean(false);
	  boolean2=new Boolean("false");
	  
	  //--------
	 //int 类型的转换
	  int i=100;
	  String inString="100";
	  
	  //把数字或字符串转换成包装类
	  Integer integer=new Integer(i);//把数字转换成包装类--装箱
	  integer=Integer.valueOf(i);//--装箱
	  integer=i;//自动装箱
	  
	  integer=new Integer(inString);//把数字字符串转换为包装类
	  integer=Integer.valueOf(inString);
	  
	  //把数字字符串转换成数字
	  int ii=Integer.parseInt(inString);
	  ii=integer.intValue();//通过方法拆箱
	  ii=integer;//自动拆箱	  
	  
	  //在不同数据类型间的转换
	  long l=integer.longValue();//将Integer型转化为long型，这里的Integer型是包装类型：
	  
	  short s=integer.shortValue();
	  
	  byte b=integer.byteValue();
	  
	  float f=integer.floatValue();
	  
	  double d=integer.doubleValue();
	  
	  //注意：数据类型间的转换不包含char 类型
	  //char c=integer.charValue(); 
	  
	  char c='a';
	  Character character=new Character(c);
	  String string5=character.toString();
	  //string5='中'; //字符类型不能直接赋值给字符串类型
	  
	  string=String .valueOf(c);
	  
	  //--------特殊的
	/*  Integer.parseInt("0", 10);// returns 0
	  Integer.parseInt("473", 10);// returns 473
	  Integer.parseInt("+42", 10);// returns 42
	  Integer.parseInt("-0", 10);// returns 0
	  Integer.parseInt("-FF", 16);// returns -255
	  Integer.parseInt("1100110", 2);// returns 102
	  
	  Integer.parseInt("2147483647", 10);// returns 2147483647
	  Integer.parseInt("-2147483648", 10);// returns -2147483648
	  Integer.parseInt("2147483648", 10) ;//throws a NumberFormatException
	  Integer.parseInt("99", 8);// throws a NumberFormatException
	  Integer.parseInt("Kona", 10);// throws a NumberFormatException
	  Integer.parseInt("Kona", 27) ;//returns 411787
*/	  	  
	  int k=Integer.parseInt("90",10);//转换为10-->10进制
	  System.out.println(k);
	  
	   k=Integer.parseInt("90",16);//转换为16-->10进制
	  System.out.println(k);
	  
	  k=Integer.parseInt("70",8);//转换为8-->10进制
	  System.out.println(k);
	  
	  k=Integer.parseInt("11001101",2);//转换为2-->10进制
	  System.out.println(k);
	  
	  //0123456789 abcdefghij klmn opq --27位数
	  k=Integer.parseInt("q",27);//转换为27-->10进制
	  k=Integer.parseInt("z",36);//转换为36-->10进制
	  System.out.println(k);	  
	  
      System.out.println("=========  数据位的理解  ============");
	  System.out.println("Byte.SIZE: "+Byte.SIZE);
	  System.out.println("Short.SIZE: "+Short.SIZE);
	  System.out.println("Integer.SIZE: "+Integer.SIZE);
	  System.out.println("Long.SIZE: "+Long.SIZE);  
	  System.out.println("Float.SIZE: "+Float.SIZE);
	  System.out.println("Double.SIZE: "+Double.SIZE);
	  System.out.println("Character.SIZE: "+Character.SIZE);

	  
	}

}
